Ahora vamos a hablar de la entrada/salida de ficheros. Solo trataremos
ficheros ASCII en esta entrega.

Para poder usar ficheros, primero ha de declararse un puntero de tipo FILE.

Ejemplo: 

FILE *fichero;

Una vez declarado el puntero debemos indicarle, con una cadena, la ruta del fichero 
a abrir y usar la orden fopen. La sintaxis es punterofichero=fopen(cadena,"modo de apertura");

ejemplo :

fichero=fopen("prueba.txt","w");

Ahora os voy a detallar los modos de apertura para ficheros ascii. El archivo debe existir.

r Sirve para abrir un fichero para solo lectura.

W Abre un fichero y lo deja en blanco.Si no existe, lo crea.

a Abre un fichero y empieza a escribir en el final del mismo. Si no existe, lo crea.

r+ Sirve para abrir un fichero para solo lectura y tambien escribirlo dejandolo en blanco.

W+ Abre un fichero y lo deja en blanco y tambien lo puede leer.Si no existe, lo crea.

a+ Abre un fichero para lectura, y empieza a escribir en el final del mismo. Si no existe, lo crea.

Para comprobar si un fichero se ha abierto correctamente, debemos comparar el puntero del 
fichero con la constante NULL. Si es igual a NULL es que no se abrio/creo correctamente.

Ejemplo :

FILE *fichero;
fichero=fopen("prueba.txt","w");

if(fichero==NULL)
{
	printf("Error al abrir el fichero");
}

Una vez abierto, podemos usar las funciones de lectura/escritura

La lectura de un fichero abierto con r, es lineal.Para saber cuando acaba, 
se debe usar la funcion feof(puntero).(como culturilla, eof significa End Of File)

Ejemplo:

if(feof(fichero))
{
	printf("Se llego al final del fichero");
}

La funcion principal de lectura es fscanf . Sus argumentos son 
fscanf(puntero,"tipodedatos",&variable)

Ejemplo :

fscanf(fichero,"%d",&numero);

La funcion principal de escritura es fprintf. Sus argumentos son
fprintf(puntero,"datos a imprimir");

Ejemplo : 

fprintf(fichero,"hola tengo %d aos",edad);

Cuando se ha acabado de usar un fichero, se debe cerrar correctamente
para evitar problemas. Comprobar que al salir un programa (en todas sus posibles salidas)
simepre cierre los ficheros abiertos.

La funcion para cerrar es fclose(puntero);

Ejemplo :

fclose(fichero);

Ahora os adjunto un programa de codigo fuente con el uso de ficheros.
Este programa copiara el archivo prueba.txt en prueba2.txt 
Sera necesario que prueba.txt este creado previamente ,sea ascii y este en el 
directorio donde compiles este fuente.
Este codigo fuente lo "copiara".

#include <stdio.h>

void main()
{
FILE *fichero;
FILE *fichero2;

char copia;

fichero=fopen("prueba.txt","r");
fichero2=fopen("prueba2.txt","w");

while (!feof(fichero))
{
	fscanf(fichero,"%c",&copia);
	if(feof(fichero))
	{
		break;
	}
	fprintf(fichero2,"%c",copia);
}
fclose(fichero);
fclose(fichero2);

Texto escrito integramente por ]_HQH_[ 

Este texto es de libre distribucion, pero debes citar la fuente http://nuevared.tk

Texto escrito para el curso de programacion basica en C de http://prehackers.com y 
http://nuevared.tk 

